#ifndef ANIMATEDSPRITE_H
#define ANIMATEDSPRITE_H
#include "tiledsprite.h"
#include <vector>



class AnimatedSprite: public TiledSprite{

private:

	std::vector<unsigned> frames;//Vector con los frames que forman la animación
	
	float frameTime;//tiempo de duración de cada frame
	float elapsedTime;//tiempo transcurrido para el frame

	unsigned currentFrame;//Frame actual

	bool loop;//indica si se debe realizar un loop con la animación

	bool isPlaying;//Indica si está reproduciendo


public:
	AnimatedSprite(const std::string &filename, unsigned nCols, unsigned nRows =1);

	//Asigna una animación al sprite, frames es un vector que indica que cuadros del spritesheet corresponden
	void SetAnimation(const std::vector<unsigned> frames,float animationTime, bool loop=true, unsigned startFrame=0);

	//Actualiza la animación según el tiempo
	void Animate(const float &dt);

	//Para la animación
	void Stop(unsigned tileIndex);
	
















};

#endif
